home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / bbs / both_203.zip / BOTHALL.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-09-17  |  8KB  |  474 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     String   STRING001
  27.     String   STRING002
  28.     String   STRING003
  29.     String   STRING004
  30.     String   STRING005
  31.     String   STRING006
  32.     String   STRING007
  33.     String   STRING008
  34.     String   STRING009
  35.     String   STRING010
  36.     String   STRING011
  37.     String   STRING012
  38.     String   STRING013
  39.     String   STRING014
  40.     String   STRING015
  41.     String   STRING016
  42.     String   STRING017
  43.     String   STRING018
  44.     String   STRING019
  45.     String   STRING020
  46.     String   STRING021
  47.     String   STRING022
  48.     String   STRING023
  49.     String   STRING024
  50.     String   STRING025
  51.     String   STRING026
  52.     String   STRING027
  53.     String   STRING028
  54.     String   STRING029
  55.     String   STRING030
  56.     String   STRING031
  57.     String   STRING032
  58.     String   STRING033
  59.     String   STRING034
  60.     String   STRING035
  61.     String   STRING036
  62.     String   STRING037
  63.     String   STRING038
  64.     String   STRING039
  65.     String   STRING040
  66.     String   STRING041
  67.     String   STRING042
  68.     String   STRING043
  69.     String   STRING044
  70.     String   STRING045
  71.     String   STRING046
  72.     String   STRING047
  73.     String   STRING048
  74.     String   STRING049
  75.     String   STRING050
  76.     String   STRING051
  77.     String   STRING052
  78.     String   STRING053
  79.     String   STRING054
  80.     String   STRING055
  81.     String   STRING056
  82.     String   STRING057
  83.     String   STRING058
  84.     String   STRING059
  85.     String   STRING060
  86.     String   STRING061
  87.     String   STRING062
  88.     String   STRING063
  89.     String   STRING064
  90.     String   STRING065
  91.     String   STRING066
  92.     String   STRING067
  93.     String   STRING068
  94.  
  95. ;------------------------------------------------------------------------------
  96.  
  97.     STRING067 = PPEPath() + "LASTDATE.DAT"
  98.     STRING024 = PPEPath() + "LASTCALL.TMP"
  99.     STRING019 = PPEPath() + "ALLCALL.TMP"
  100.     STRING022 = PPEPath() + "LASTSTAT.TMP"
  101.     STRING023 = PPEPath() + "ALLSTAT.TMP"
  102.     STRING036 = PPEPath() + PPEName() + ".CFG"
  103.     STRING031 = "Sysop"
  104.     STRING032 = ""
  105.     STRING033 = ""
  106.     STRING034 = ""
  107.     STRING035 = ""
  108.     INTEGER006 = Date()
  109.     STRING055 = "@X07"
  110.     STRING014 = Space(1)
  111.     STRING015 = Space(2)
  112.     INTEGER001 = 0
  113.     INTEGER002 = 0
  114.     INTEGER003 = 20
  115.     INTEGER004 = 500
  116.     STRING038 = "║"
  117.     STRING037 = "║"
  118.     STRING039 = "╔═════════════════════════════════════════════════════════════════════════════╗"
  119.     STRING040 = "╠═════════════════════════════════════════════════════════════════════════════╣"
  120.     STRING020 = "╚═════════════════════════════════════════════════════════════════════════════╝"
  121.     STRING030 = "@X0E@MORE@"
  122.     GetUser
  123.     Log "Minutes Used: " + String(MinOn()), 0
  124.     Newline
  125.     PrintLn "@X0ERunning BOTHALL.PPE v2.03 @X0A(c) Copyright 1994 @X0Bby A. Segura@X07"
  126.     Newlines 2
  127.     PrintLn "@X0CMinutes Used: " + String(MinOn())
  128.     Newlines 2
  129.     PrintLn "@X0AThanks for calling, @X0B@FIRST@!@X07"
  130.     Newline
  131.     If (Exist(STRING036)) Then
  132.         FOpen 1, STRING036, 0, 0
  133.         Newline
  134.         SPrintLn "... Loading CFG Records ... (BOTHALL.PPE)."
  135.         Newline
  136.         FGet 1, STRING001
  137.         FGet 1, INTEGER003
  138.         FGet 1, INTEGER004
  139.         FGet 1, STRING031
  140.         FGet 1, STRING032
  141.         FGet 1, STRING033
  142.         FGet 1, STRING034
  143.         FGet 1, STRING035
  144.         FGet 1, INTEGER005
  145.         FGet 1, STRING043
  146.         STRING043 = Left(STRING043, 4)
  147.         FGet 1, STRING044
  148.         STRING044 = Left(STRING044, 4)
  149.         FGet 1, STRING045
  150.         STRING045 = Left(STRING045, 4)
  151.         FGet 1, STRING046
  152.         STRING046 = Left(STRING046, 4)
  153.         FGet 1, STRING047
  154.         STRING047 = Left(STRING047, 4)
  155.         FGet 1, STRING048
  156.         STRING048 = Left(STRING048, 4)
  157.         FGet 1, STRING049
  158.         STRING049 = Left(STRING049, 4)
  159.         FGet 1, STRING050
  160.         STRING050 = Left(STRING050, 4)
  161.         FGet 1, STRING051
  162.         STRING051 = Left(STRING051, 4)
  163.         FGet 1, STRING052
  164.         STRING052 = Left(STRING052, 4)
  165.         FGet 1, STRING053
  166.         STRING053 = Left(STRING053, 4)
  167.         FGet 1, STRING054
  168.         STRING054 = Left(STRING054, 4)
  169.         FGet 1, STRING056
  170.         STRING056 = Left(STRING056, 4)
  171.         FGet 1, STRING057
  172.         STRING057 = Left(STRING057, 4)
  173.         FGet 1, STRING058
  174.         STRING058 = Left(STRING058, 4)
  175.         FGet 1, STRING059
  176.         STRING059 = Left(STRING059, 4)
  177.         FGet 1, STRING060
  178.         STRING060 = Left(STRING060, 4)
  179.         FGet 1, STRING061
  180.         STRING061 = Left(STRING061, 4)
  181.         FGet 1, STRING062
  182.         STRING062 = Left(STRING062, 4)
  183.         FGet 1, STRING063
  184.         STRING063 = Left(STRING063, 4)
  185.         FGet 1, STRING064
  186.         STRING064 = Left(STRING064, 4)
  187.         FGet 1, STRING041
  188.         FGet 1, STRING066
  189.         FGet 1, STRING068
  190.         STRING068 = Left(STRING068, 4)
  191.         FClose 1
  192.     Else
  193.         PrintLn "Tell SysOp BOTHALL.CFG file is missing! (BOTHALL.PPE)."
  194.         Log "BOTHALL.CFG missing, shifting to defaults!", 1
  195.         Newline
  196.     Endif
  197.     If (CurSec() == 0) Goto LABEL008
  198.     STRING018 = Mixed(U_Name())
  199.     If (STRING018 == Mixed(STRING031)) Goto LABEL008
  200.     If (STRING018 == Mixed(STRING032)) Goto LABEL008
  201.     If (STRING018 == Mixed(STRING033)) Goto LABEL008
  202.     If (STRING018 == Mixed(STRING034)) Goto LABEL008
  203.     If (STRING018 == Mixed(STRING035)) Goto LABEL008
  204.     KbdChkOff
  205.     CdChkOff
  206.     DtrOff
  207.     Delay 18
  208.     DtrOn
  209.     If ((STRING066 == 1) && Exist(STRING019)) Then
  210.         If (Exist(STRING067)) Then
  211.             FOpen 1, STRING067, 0, 0
  212.             FGet 1, INTEGER007
  213.             FClose 1
  214.             If (INTEGER006 > INTEGER007) Then
  215.                 Delete PPEPath() + "YSTAT"
  216.                 Delete PPEPath() + "YCALL"
  217.                 Rename PPEPath() + "ASTAT", PPEPath() + "YSTAT"
  218.                 Rename PPEPath() + "ACALL", PPEPath() + "YCALL"
  219.                 Delete STRING019
  220.                 Delete STRING023
  221.             Endif
  222.             Goto LABEL001
  223.         Endif
  224.         Log "File LASTDATE.DAT not found! (BOTHALL.PPE)", 1
  225.         Newline
  226.         SPrintLn "File LASTDATE.DAT not found! (BOTHALL.PPE)"
  227.         Newline
  228.     Endif
  229.     :LABEL001
  230.     If ((INTEGER005 < 0) || (INTEGER005 > 500)) INTEGER005 = 500
  231.     If (INTEGER005 <> 500) Then
  232.         STRING025 = PPEPath() + "ACALL" + String(INTEGER005)
  233.         STRING002 = PPEPath() + "ASTAT" + String(INTEGER005)
  234.     Else
  235.         STRING025 = PPEPath() + "ACALL"
  236.         STRING002 = PPEPath() + "ASTAT"
  237.     Endif
  238.     If (STRING041 == "ARS9933MS") Then
  239.         STRING042 = "@X0D..........BOTHALL.PPE v2.03 @X0A(c) COPYRIGHT 1994 @X0Bby Al Segura @X0AREGISTERED@X0D.........@X07"
  240.     Else
  241.         STRING042 = "@X0D.........BOTHALL.PPE v2.03 @X0A(c) COPYRIGHT 1994 @X0Bby Al Segura @X0CUNREGISTERED@X0D........@X07"
  242.     Endif
  243.     STRING003 = STRING049 + Left(STRING018, 20) + STRING014
  244.     STRING008 = STRING054 + Right(String(U_Logons()), 3) + STRING014
  245.     STRING009 = STRING056 + Left(String(U_LDate()), 5)
  246.     STRING011 = STRING046 + Left(String(Date()), 5) + STRING014
  247.     STRING004 = STRING057 + Right(String(U_Ful()), 3) + STRING014
  248.     STRING005 = STRING058 + Right(String(U_Fdl()), 3) + STRING014
  249.     STRING006 = STRING059 + Right(String(U_MsgRd()), 5) + STRING014
  250.     STRING007 = STRING060 + Right(String(U_MsgWr()), 3) + STRING015
  251.     STRING012 = STRING061 + Right(String(U_Stat(4)), 3) + STRING014
  252.     STRING013 = STRING062 + Right(String(U_Stat(10)), 3) + STRING015
  253.     STRING016 = STRING063 + Right(String(U_Stat(14)), 3) + STRING014
  254.     STRING017 = STRING064 + Right(String(U_Stat(12)), 3)
  255.     STRING029 = STRING047 + Left(String(Time()), 5) + STRING014
  256.     If (U_Sec < INTEGER003) STRING010 = STRING051 + Right(String(U_Sec), 3) + STRING015
  257.     If (U_Sec >= INTEGER003) STRING010 = STRING052 + Right(String(U_Sec), 3) + STRING015
  258.     STRING021 = STRING011 + STRING029 + STRING003 + STRING010 + STRING008 + STRING005 + STRING004 + STRING006 + STRING007 + STRING012 + STRING013 + STRING016 + STRING017
  259.     FCreate 1, STRING022, 2, 0
  260.     FPutLn 1, STRING021
  261.     FClose 1
  262.     If (Exist(STRING023)) Goto LABEL002
  263.     FCreate 1, STRING023, 2, 0
  264.     FClose 1
  265.     :LABEL002
  266.     Append STRING023, STRING022
  267.     STRING021 = ""
  268.     FOpen 2, STRING022, 0, 0
  269.     FCreate 1, STRING002, 1, 0
  270.     :LABEL003
  271.     If (Ferr(2)) Goto LABEL004
  272.     FGet 2, STRING021
  273.     Select Case (INTEGER001)
  274.         Case 0
  275.             If (STRING021 == "") Goto LABEL004
  276.             FPutLn 1, "@CLS@"
  277.             FPutLn 1, STRING043 + STRING039 + STRING055
  278.             FPutLn 1, STRING043 + STRING038 + STRING044 + STRING001 + STRING043 + STRING037 + STRING055
  279.             FPutLn 1, STRING043 + STRING040 + STRING055
  280.             FPutLn 1, STRING043 + STRING038 + STRING045 + "                                 Sec TOTAL Files  MESSAGES# Cmnt SECURITY Dwn" + STRING043 + STRING037 + STRING055
  281.             FPutLn 1, STRING043 + STRING038 + STRING045 + "Date  Time  User Name            Lvl Call Dwn  Up  Read Wrt Left Vio Pwrd Lmt" + STRING043 + STRING037 + STRING055
  282.             FPutLn 1, STRING043 + STRING040 + STRING055
  283.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  284.         Case 12
  285.             If (STRING021 == "") Goto LABEL004
  286.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  287.             FPutLn 1, STRING043 + STRING020 + STRING055
  288.             FPutLn 1, STRING042
  289.             FPutLn 1, STRING030
  290.             INTEGER001 = -1
  291.         Case Else
  292.             If (STRING021 == "") Goto LABEL004
  293.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  294.     End Select
  295.     Inc INTEGER001
  296.     Inc INTEGER002
  297.     If (INTEGER002 >= INTEGER004) Goto LABEL004
  298.     Goto LABEL003
  299.     :LABEL004
  300.     If (INTEGER001 <> 0) Then
  301.         FPutLn 1, STRING043 + STRING020 + STRING055
  302.         FPutLn 1, STRING042
  303.         FPutLn 1, STRING030
  304.     Endif
  305.     FClose 1
  306.     FClose 2
  307.     Delete STRING023
  308.     Rename STRING022, STRING023
  309.     INTEGER001 = 0
  310.     INTEGER002 = 0
  311.     STRING021 = ""
  312.     STRING003 = STRING049 + Left(STRING018, 18) + STRING014
  313.     STRING026 = STRING050 + Left(Mixed(U_City), 21) + STRING014
  314.     STRING027 = STRING053 + Right(String(Carrier()), 5) + STRING015
  315.     STRING008 = STRING054 + Right(String(U_Logons()), 4) + STRING014
  316.     STRING010 = Left(STRING010, Len(STRING010) - 1)
  317.     STRING028 = STRING048 + Right(String(MinOn()), 3) + STRING014
  318.     STRING065 = STRING068 + Right(String(PcbNode()), 3) + STRING014
  319.     STRING021 = STRING011 + STRING029 + STRING028 + STRING003 + STRING026 + STRING010 + STRING027 + STRING008 + STRING065
  320.     FCreate 1, STRING024, 2, 0
  321.     FPutLn 1, STRING021
  322.     FClose 1
  323.     If (Exist(STRING019)) Goto LABEL005
  324.     FCreate 1, STRING019, 2, 0
  325.     FClose 1
  326.     :LABEL005
  327.     Append STRING019, STRING024
  328.     STRING021 = ""
  329.     FOpen 2, STRING024, 0, 0
  330.     FCreate 1, STRING025, 1, 0
  331.     :LABEL006
  332.     If (Ferr(2)) Goto LABEL007
  333.     FGet 2, STRING021
  334.     Select Case (INTEGER001)
  335.         Case 0
  336.             If (STRING021 == "") Goto LABEL007
  337.             FPutLn 1, "@CLS@"
  338.             FPutLn 1, STRING043 + STRING039 + STRING055
  339.             FPutLn 1, STRING043 + STRING038 + STRING044 + STRING001 + STRING043 + STRING037 + STRING055
  340.             FPutLn 1, STRING043 + STRING040 + STRING055
  341.             FPutLn 1, STRING043 + STRING038 + STRING045 + "Date  Time  Min User Name          User's City           Sec  Baud Calls Node" + STRING043 + STRING037 + STRING055
  342.             FPutLn 1, STRING043 + STRING040 + STRING055
  343.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  344.         Case 13
  345.             If (STRING021 == "") Goto LABEL007
  346.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  347.             FPutLn 1, STRING043 + STRING020 + STRING055
  348.             FPutLn 1, STRING042
  349.             FPutLn 1, STRING030
  350.             INTEGER001 = -1
  351.         Case Else
  352.             If (STRING021 == "") Goto LABEL007
  353.             FPutLn 1, STRING043 + STRING038 + STRING021 + STRING043 + STRING037 + STRING055
  354.     End Select
  355.     Inc INTEGER001
  356.     Inc INTEGER002
  357.     If (INTEGER002 >= INTEGER004) Goto LABEL007
  358.     Goto LABEL006
  359.     :LABEL007
  360.     If (INTEGER001 <> 0) Then
  361.         FPutLn 1, STRING043 + STRING020 + STRING055
  362.         FPutLn 1, STRING042
  363.         FPutLn 1, STRING030
  364.     Endif
  365.     FClose 1
  366.     FClose 2
  367.     Delete STRING019
  368.     Rename STRING024, STRING019
  369.     If (STRING066 == 1) Then
  370.         FCreate 1, STRING067, 1, 0
  371.         FPutLn 1, INTEGER006
  372.         FClose 1
  373.     Endif
  374.     CdChkOn
  375.     KbdChkOn
  376.     SPrintLn "BOTHALL.PPE Completed Successfully!"
  377.     End
  378.     :LABEL008
  379.     End
  380.  
  381. ;------------------------------------------------------------------------------
  382. ;
  383. ; Usage report (before postprocessing)
  384. ;
  385. ; ■ Statements used :
  386. ;
  387. ;    2       End
  388. ;    41      Goto 
  389. ;    86      Let 
  390. ;    4       PrintLn 
  391. ;    34      If 
  392. ;    7       FCreate 
  393. ;    4       FOpen 
  394. ;    11      FClose 
  395. ;    36      FGet 
  396. ;    34      FPutLn 
  397. ;    1       GetUser
  398. ;    6       Delete 
  399. ;    3       Log 
  400. ;    1       DtrOn
  401. ;    1       DtrOff
  402. ;    1       CdChkOn
  403. ;    1       CdChkOff
  404. ;    1       Delay 
  405. ;    4       Inc 
  406. ;    7       Newline
  407. ;    2       Newlines 
  408. ;    1       KbdChkOn
  409. ;    1       KbdChkOff
  410. ;    3       SPrintLn 
  411. ;    4       Rename 
  412. ;    2       Append 
  413. ;
  414. ;
  415. ; ■ Functions used :
  416. ;
  417. ;    2       -
  418. ;    161     +
  419. ;    1       -
  420. ;    19      ==
  421. ;    3       <>
  422. ;    2       <
  423. ;    2       >
  424. ;    3       >=
  425. ;    17      !
  426. ;    1       &&
  427. ;    1       ||
  428. ;    1       Len(
  429. ;    29      Left()
  430. ;    15      Right()
  431. ;    2       Space()
  432. ;    2       Ferr()
  433. ;    2       Date()
  434. ;    1       Time()
  435. ;    1       U_Name()
  436. ;    1       U_LDate()
  437. ;    2       U_Logons()
  438. ;    1       U_Ful()
  439. ;    1       U_Fdl()
  440. ;    22      String()
  441. ;    16      PPEPath()
  442. ;    1       U_MsgRd()
  443. ;    1       U_MsgWr()
  444. ;    1       PcbNode()
  445. ;    1       CurSec()
  446. ;    3       MinOn()
  447. ;    5       Exist()
  448. ;    1       Carrier()
  449. ;    4       U_Stat()
  450. ;    1       PPEName()
  451. ;    7       Mixed()
  452. ;
  453. ;------------------------------------------------------------------------------
  454. ;
  455. ; Analysis flags : B
  456. ;
  457. ; B - Brute hangup ■ 1
  458. ;     Program hangup without notification. This may be a good way to
  459. ;     disconnect a user, but if used randomly, may be very nasty
  460. ;     ■ Search for : HANGUP, DTROFF
  461. ;
  462. ;------------------------------------------------------------------------------
  463. ;
  464. ; Postprocessing report
  465. ;
  466. ;    0       For/Next
  467. ;    0       While/EndWhile
  468. ;    9       If/Then or If/Then/Else
  469. ;    2       Select Case
  470. ;
  471. ;------------------------------------------------------------------------------
  472. ;                 AEGiS Corp - Break the routines, code against the machines!
  473. ;------------------------------------------------------------------------------
  474.